﻿Public Class ABM_Tipo_Producto
    Dim acceso As New acceso
    Dim esNuevo As Boolean
    Dim comando As New SqlClient.SqlCommand
    Dim Producto As New TipoProducto()



    Private Sub cargarGrilla()
        Dim tabla As New Data.DataTable()
        tabla = acceso.leo_tabla("TipoProducto")
        dgv_tipoProducto.DataSource = tabla
        acomodarGrilla()
    End Sub

    Private Sub acomodarGrilla()
        dgv_tipoProducto.Columns("idTipoProducto").HeaderText = "Numero de Tipo Producto"
        dgv_tipoProducto.Columns("idTipoProducto").Width = 60
        dgv_tipoProducto.Columns("nombre").HeaderText = "Nombre"
    End Sub

    Private Sub dgv_tipoProducto_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgv_tipoProducto.Click
        txt_id_TipoProducto.Text = dgv_tipoProducto.SelectedRows(0).Cells("idTipoProducto").Value
        txt_nombre_tipo.Text = dgv_tipoProducto.SelectedRows(0).Cells("nombre").Value
        esNuevo = False

    End Sub


    Public Sub insertTipoProducto(ByVal Tproducto As TipoProducto)
        Dim sql As String
        sql = "Insert INTO TipoProducto (nombre) VALUES (@nombre)"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@nombre", Tproducto._nombre)
        acceso.ejecutarActualizaciones(sql, comando)
    End Sub


    Public Sub updateTipoProducto(ByVal Tproducto As TipoProducto)
        Dim sql As String
        sql = "UPDATE TipoProducto SET nombre = @nombre where idTipoProducto = @idTipoProducto"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@nombre", Tproducto._nombre)
        comando.Parameters.AddWithValue("@idTipoProducto", Tproducto._idTipoProducto)
        acceso.ejecutarActualizaciones(sql, comando)
    End Sub
    Private Sub btn_nuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_nuevo.Click
        esNuevo = True
        blanquear()

    End Sub
    Private Sub blanquear()
        txt_id_TipoProducto.Text = ""
        txt_nombre_tipo.Focus()
        txt_nombre_tipo.Text = ""
    End Sub
    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        'If MessageBox.Show("¿ Desea salir del ABM Tipo de Producto ?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
        Me.Close()
        'End If
    End Sub

    Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click
        'Validaciones
        If txt_nombre_tipo.Text = "" Then
            MessageBox.Show("El campo Nombre no puede estar vacio", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            txt_nombre_tipo.Focus()
            Return
        End If




        Producto._nombre = txt_nombre_tipo.Text

        If esNuevo = True Then
            insertTipoProducto(Producto)
            cargarGrilla()
            blanquear()
            MessageBox.Show("Nuevo tipo de producto cargado con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Else
            Producto._idTipoProducto = txt_id_TipoProducto.Text
            updateTipoProducto(Producto)
            cargarGrilla()
            blanquear()
            MessageBox.Show("Tipo de Producto actualizado con exito", "ATENCION", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If


    End Sub



    Private Sub btn_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_eliminar.Click
        If dgv_tipoProducto.SelectedRows.Count <> 0 Then
            Producto._idTipoProducto = dgv_tipoProducto.CurrentRow.Cells("idTipoProducto").Value
            Producto._nombre = dgv_tipoProducto.CurrentRow.Cells("nombre").Value
            If MessageBox.Show("Esta seguro que desea eliminar el Tipo de Producto: " & Producto._nombre, "ATENCION", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) = Windows.Forms.DialogResult.Yes Then
                deleteTipoProducto(Producto)
                cargarGrilla()
                blanquear()
            End If
        End If
    End Sub

    Public Sub deleteTipoProducto(ByVal Producto As TipoProducto)
        Dim sql As String
        sql = "Delete TipoProducto where idTipoProducto = @idTipoProducto"
        comando = New Data.SqlClient.SqlCommand
        comando.Parameters.AddWithValue("@idTipoProducto", Producto._idTipoProducto)
        acceso.ejecutarActualizaciones(sql, comando)


    End Sub

    Private Sub ABM_Tipo_Producto_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarGrilla()
        esNuevo = True
    End Sub
End Class